{{>partial_header}}
syntax = "proto3";

package {{#lambda.lowercase}}{{{packageName}}};{{/lambda.lowercase}}

{{#customOptionsModel}}
{{{.}}}
{{/customOptionsModel}}
{{#imports}}
{{#import}}
import public "{{{.}}}.proto";
{{/import}}
{{/imports}}

{{#models}}
{{#model}}
{{#isEnum}}{{>enum}}{{/isEnum}}{{^isEnum}}message {{classname}} {

{{#oneOf}}
{{#-first}}
    oneof {{classVarName}} {
        {{#vars}}
        {{#description}}
        // {{{.}}}
        {{/description}}
        {{#vendorExtensions.x-protobuf-type}}{{{.}}} {{/vendorExtensions.x-protobuf-type}}{{{vendorExtensions.x-protobuf-data-type}}} {{{name}}} = {{vendorExtensions.x-protobuf-index}}{{#vendorExtensions.x-protobuf-packed}} [packed=true]{{/vendorExtensions.x-protobuf-packed}};
        {{/vars}}
    }
{{/-first}}
{{/oneOf}}
{{^oneOf}}
  {{#vars}}
  {{#description}}
  // {{{.}}}
  {{/description}}
  {{^isEnum}}
  {{#vendorExtensions.x-protobuf-type}}{{{.}}} {{/vendorExtensions.x-protobuf-type}}{{{vendorExtensions.x-protobuf-data-type}}} {{{name}}} = {{vendorExtensions.x-protobuf-index}}{{#vendorExtensions.x-protobuf-packed}} [packed=true]{{/vendorExtensions.x-protobuf-packed}}{{#vendorExtensions.x-protobuf-json-name}} [json_name="{{vendorExtensions.x-protobuf-json-name}}"]{{/vendorExtensions.x-protobuf-json-name}};
  {{/isEnum}}
  {{#isEnum}}
  enum {{enumName}} {
    {{#allowableValues}}
    {{#enumVars}}
    {{{name}}} = {{{protobuf-enum-index}}};
    {{/enumVars}}
    {{/allowableValues}}
  }

  {{enumName}} {{name}} = {{vendorExtensions.x-protobuf-index}};
  {{/isEnum}}

  {{/vars}}
{{/oneOf}}
}
{{/isEnum}}
{{/model}}

{{/models}}
